The present invention relates generally to component placement machines, such as so-called xe2x80x9cpick and placexe2x80x9d, machines used in assembly of surface mount devices (SMDs) and other components onto printed circuit boards (PCBs), and more particularly to optimizers for use in configuring such machines.
Known techniques for optimization of pick and place machines and other types of component placement machines are described in U.S. Pat. No. 5,390,283 issued Feb. 14, 1995 in the name of inventors Larry J. Eshelman and J. David Schaffer and entitled xe2x80x9cMethod for Optimizing the Configuration of a Pick and Place Machine,xe2x80x9d U.S. Pat. No. 5,864,833 issued Jan. 26, 1999 in the name of inventors J. David Schaffer and Murali Mani and entitled xe2x80x9cApparatus for Optimizing the Layout and Charge Maps of a Flowline of Pick and Place Machines,xe2x80x9d and U.S. Pat. No. 5,909,674 issued Jun. 1, 1999 in the name of inventors J. David Schaffer and Murali Mani and entitled xe2x80x9cMethod for Optimizing the Layout and Charge Maps of a Flowline of Pick and Place Machines,xe2x80x9d all of which are commonly assigned with the present application and incorporated by reference herein.
Despite the considerable advances provided by the techniques described in the above-cited references, further improvements are needed in optimization of lines of component placement machines. For example, existing modular optimizers for component placement machines generally require that new optimizer modules be developed for any new machine types to be added to a given production line. Although many of the new machine types may already have their own optimizers, such optimizers are often not appropriate for use in the modular optimizer. As a more specific example, the optimizers for the new machines may be non-genetic algorithm (GA) based optimizers that run far too slowly to be called the many thousands of times typical of a GA-based based modular optimizer such as that described in the above-cited U.S. patent application Ser. No. 09/286,026. It is therefore apparent that a need exists for a modular optimizer which is capable of learning and utilizing a foreign optimizer module in an efficient manner.
The invention provides improved techniques for optimization of component placement machines. In accordance with one aspect of the invention, a modular optimizer is configured to utilize a foreign optimizer module in an efficient manner.
More particularly, a modular optimizer, for use in determining a configuration of a production line with one or more component placement machines, is configured to utilize a foreign optimizer module associated with a component placement machine type foreign to the modular optimizer. The foreign optimizer module is xe2x80x9cforeignxe2x80x9d in that it is unable to generate outputs in accordance with the particular requirements of the modular optimizer. However, the modular optimizer includes an adapting estimator which estimates an output value, such as a placement cycle time measure, for the foreign optimizer module. The estimated output value may be used in determining the configuration of the production line.
In accordance with another aspect of the invention, the modular optimizer periodically calls the foreign optimizer module, and for a given one of the calls compares a resulting output value generated by the foreign optimizer module to the corresponding estimated output value generated by the adapting estimator. If for a given call of the foreign optimizer module the actual output value for a corresponding estimated value is determined to provide an improved result, one or more parameters of the estimator are altered so as to reduce an error associated with generation of subsequent estimated output values.
In accordance with a further aspect of the invention, the foreign optimizer module may be called based at least in part on a restart of a genetic algorithm (GA) of the modular optimizer. For example, the foreign optimizer module may be called whenever there is a restart of the GA and a new best individual has been found since a previous restart. The calling of the foreign optimizer module may alternatively be based on other criteria. For example, the foreign optimizer module may be called each time a new offspring of the GA is encountered that is likely to get into a surviving population, or whenever a potentially new best individual is encountered in the GA.
Advantageously, the invention allows the full optimization of the foreign optimizer module to be run only intermittently, in accordance with its own particular run time requirements. Over time, the adapting estimator learns about the operation of the foreign optimizer module, and thus becomes a more accurate predictor of its outputs.